Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Magic string</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Magic_string"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Magic_string rootpage-Magic_string skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Magic string</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><p class="mw-empty-elt">
</p>

<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="Magic_number_(programming)" title="Magic number (programming)">Magic number (programming)</a> or <a href="Magic_string_(therapeutic_aid)" title="Magic string (therapeutic aid)">Magic string (therapeutic aid)</a>.</div>
<p>In <a href="Computer_programming" title="Computer programming">computer programming</a>, a <b>magic string</b> is an input that a programmer believes will never come externally and which activates otherwise hidden functionality. A user of this program would likely provide input that gives an expected response in most situations. However, if the user does in fact innocently (unintentionally) provide the pre-defined input, invoking the internal functionality, the program response is often quite unexpected to the user (thus appearing "magical").<sup id="cite_ref-CFalter1_1-0" class="reference"><a href="#cite_note-CFalter1-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Background">Background</h2></div>
<p>Typically, the implementation of magic strings is due to time constraints. A developer must find a fast solution instead of delving more deeply into a problem and finding a better solution. For example, when testing a program that takes a user's personal details and verifies their credit card number, a developer may decide to add a magic string shortcut whereby entering the unlikely input of "***" as a credit card number would cause the program to automatically proceed as if the card were valid, without spending time verifying it. If the developer forgets to remove the magic string, and a user of the final program happens to enter "***" as a placeholder credit card number while filling in the form, the user would inadvertently trigger the hidden functionality.
</p>
<div class="mw-heading mw-heading2"><h2 id="Resolution">Resolution</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Situations/issues_of_cause">Situations/issues of cause</h3></div>
<p>Often there are significant time constraints out of the developer's control right from the beginning of their involvement in a project. Common issues that might lead to this anti-pattern as a result:
</p>
<ul><li>Null&nbsp;!= null<sup id="cite_ref-WLam_2-0" class="reference"><a href="#cite_note-WLam-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> or any variation where a <a href="Data_type" title="Data type">data type</a> doesn't compare bitwise to a supposedly identical type. This is an issue that can even occur within the same development environment (same programming language and compiler). This problem has a long history for numerical and boolean types and most compilers handle this well (with applicable warnings and errors, default resolution, etc...). <a href="Nullable" class="mw-redirect" title="Nullable">Nullable</a> types such as strings have the difficulty of historically different definitions for <a href="Null_character" title="Null character">NULL</a>. The errors/warnings produced are often general or a 'best fit' default error whose message does not actually describe what's going on. If the developer can't get enough clues to track the issue down through debugging, taking a short cut, and coding in a 'default' string, may be the only way to keep the project on schedule. One solution to this may be the application of the <a href="Null_Object_pattern" class="mw-redirect" title="Null Object pattern">Null Object pattern</a>.<sup id="cite_ref-Freeman_3-0" class="reference"><a href="#cite_note-Freeman-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></li>
<li>Programmed into a corner. Sometimes a design seems straightforward and even simple but turns out to have a logical flaw, dependent upon the possible user inputs, due to an often unforeseen circumstance towards the end of planned development. Thus a developer might feel the need to implement a user input with special security/operational allowances to deal with such circumstances. This can be particularly ironic since it will sometimes become obvious that a more robust design from the beginning would likely have left room to handle the flaw. However this would perhaps have taken too much time to implement and it might have conflicted with the fundamental engineering concept of <a href="KISS_principle" title="KISS principle">KISS</a>, keeping a design and implementation simple and meeting only the initial necessary requirements.</li>
<li>Allowing external access to a <a href="Global_variable" title="Global variable">global</a> flag.<sup id="cite_ref-JMcCaffrey_4-0" class="reference"><a href="#cite_note-JMcCaffrey-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Over-confidence that a global flag can never be set accidentally or maliciously (often a quite reasonable assumption) justifies such implementation for testing and debug purposes, especially for small applications with simple interfaces. If the distribution of the program is considerable however, it is usually just a matter of time before somebody sets the flag. An obvious solution is to never use a global variable in such a manner. A developer might also inadvertently make the flag <i>circumstantially</i> accessible. So the magic string by itself would be dealt with by the program as any other input.<sup id="cite_ref-ACumming_5-0" class="reference"><a href="#cite_note-ACumming-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> The user would then have to reproduce the setting as well as produce some collection of other events that the user interface discreetly allows for the flag to accept the <span class="nowrap">setting — </span>a far more unlikely (though still possible) scenario.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Strict_formatting">Strict formatting</h3></div>
<p>Restricting the format of the input is a possible maintenance (bug fixing) <span class="nowrap">solution — </span>essentially this means validating input information to check that it is in the correct format, in order to reduce the possibility of the magic string being discovered by the user. Examples include validating a telephone number to ensure that it contains only digits (and possibly spaces and punctuation to a limited extent) or checking that a person's name has a forename and a surname (and is appropriately capitalised). An exception is made for the magic string in the validation code so that it will not be rejected by validation. It is expected that, since a user would likely quickly notice the strict enforcement of formatting, it would likely not occur to the user to try inputting a string not conforming to the format. Therefore, it is very unlikely for the user to try the magic string.
</p><p>As with any input validation process, it is important to ensure that the format is not restrictive in a way that unintentionally restricts the use of the application by some users. An example of this is restricting <a href="Telephone_number" title="Telephone number">telephone number</a> or <a href="Postal_code" title="Postal code">postal code</a><sup id="cite_ref-BKnight_6-0" class="reference"><a href="#cite_note-BKnight-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> input based on one country's system (e.g. requiring every user to give a five-digit <a href="ZIP_code" class="mw-redirect" title="ZIP code">ZIP code</a>), causing problems for legitimate users who are based in other countries.
</p>
<div class="mw-heading mw-heading2"><h2 id="Purposeful_implementation">Purposeful implementation</h2></div>
<p>As is often the case with anti-patterns, there exist specific scenarios where magic strings are a correct solution for an implementation. Examples include <a href="Cheating_in_video_games#Cheat_codes" title="Cheating in video games">cheat codes</a><sup id="cite_ref-CC_7-0" class="reference"><a href="#cite_note-CC-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> and <a href="Easter_egg_(media)" title="Easter egg (media)">Easter eggs</a>. Furthermore, there are cases when users invent magic strings, and systems that have not coded to accept them can produce unexpected results such as missing license plates.<sup id="cite_ref-noplate-snopes_8-0" class="reference"><a href="#cite_note-noplate-snopes-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Incidents">Incidents</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>The following is a list of some known incidents where use of a magic string has caused problems.
</p>
<ul><li>In several different cases, motorists with personalized strings on their <a href="Vehicle_registration_plates" class="mw-redirect" title="Vehicle registration plates">vehicle registration plates</a> have received incorrect <a href="Traffic_ticket" title="Traffic ticket">traffic tickets</a>. In affected ticketing systems, when police officers would fill out a traffic ticket for a car with no registration plate, they would write "NOPLATE", "NOTAG", "MISSING", or similar. This caused issues when motorists were granted actual registration plates with these values, and thus began receiving numerous traffic tickets intended for these plateless vehicles.<sup id="cite_ref-noplate-snopes_8-1" class="reference"><a href="#cite_note-noplate-snopes-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></li>
<li>In 1999, hackers revealed a security flaw in <a href="Hotmail" class="mw-redirect" title="Hotmail">Hotmail</a> that permitted anybody to log in to any Hotmail account using the password 'eh'. At the time it was called "the most widespread security incident in the history of the Web".<sup id="cite_ref-eh_9-0" class="reference"><a href="#cite_note-eh-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li>
<li>People with the last name Null have reported a variety of problems using online systems, such as being unable to book plane tickets, use government tax websites, or pay utility bills.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> The issue stems from these systems confusing their name for a <a href="Null_pointer" title="Null pointer">null pointer</a>. Depending on the system, this may cause the system to not show their name, to ask the user to enter a different name (sometimes with a message claiming that the name field had been left blank), or to show an error message.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Magic_number_(programming)" title="Magic number (programming)">Magic number (programming)</a></li>
<li><a href="Time_formatting_and_storage_bugs" title="Time formatting and storage bugs">Time formatting and storage bugs</a>, for problems that can be caused by magics</li>
<li><a href="Sentinel_value" title="Sentinel value">Sentinel value</a> (aka flag value, trip value, rogue value, signal value, dummy data)</li>
<li><a href="Canary_value" class="mw-redirect" title="Canary value">Canary value</a>, special value to detect buffer overflows</li>
<li><a href="Cheating_in_video_games#Cheat_codes" title="Cheating in video games">Video games cheat codes</a> which have the same origin</li>
<li><a href="XYZZY_(command)" class="mw-redirect" title="XYZZY (command)">XYZZY (command)</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-CFalter1-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-CFalter1_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFChris_Falter2008" class="citation cs2">Chris Falter (March 6, 2008), <a rel="nofollow" class="external text" href="https://web.archive.org/web/20091113160956/http://www.eggheadcafe.com/tutorials/aspnet/b916e3a9-d056-4669-8bf3-aa98ed6669c3/a-good-solution-for-magi.aspx"><i>A Good Solution for Magic String Data</i></a>, Egghead Cafe Tuturiols, archived from <a rel="nofollow" class="external text" href="http://www.eggheadcafe.com/tutorials/aspnet/b916e3a9-d056-4669-8bf3-aa98ed6669c3/a-good-solution-for-magi.aspx">the original</a> on November 13, 2009<span class="reference-accessdate">, retrieved <span class="nowrap">May 11,</span> 2009</span></cite></span>
</li>
<li id="cite_note-WLam-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-WLam_2-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFWang_Lam2003" class="citation cs2">Wang Lam (May 21, 2003), <a rel="nofollow" class="external text" href="http://infolab.stanford.edu/~ullman/fcdb/oracle/or-nulls.html"><i>The Behavior of NULL's in SQL</i></a>, Stanford University<span class="reference-accessdate">, retrieved <span class="nowrap">May 13,</span> 2009</span></cite></span>
</li>
<li id="cite_note-Freeman-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-Freeman_3-0">^</a></b></span> <span class="reference-text">Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates; 2004, <i>Head First Design Patterns</i>, 1st ed., O'Reilly, Chapter 6, pg. 214, <i>The Command Pattern</i>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-596-00712-4</bdi>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-596-00712-6</bdi></span>
</li>
<li id="cite_note-JMcCaffrey-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-JMcCaffrey_4-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFJames_McCaffrey2009" class="citation cs2">James McCaffrey (2009), <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/magazine/cc163943.aspx"><i>Test Automation for ASP.NET Web Apps with SSL</i></a>, Microsoft<span class="reference-accessdate">, retrieved <span class="nowrap">May 13,</span> 2009</span></cite></span>
</li>
<li id="cite_note-ACumming-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-ACumming_5-0">^</a></b></span> <span class="reference-text">Andrew Cumming; 2007, <i>SQL Hacks</i>, 1st ed., O'Reilly, pg. 174, <i>Prevent an SQL Injection Attack</i>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-596-52799-3</bdi>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-596-52799-0</bdi></span>
</li>
<li id="cite_note-BKnight-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-BKnight_6-0">^</a></b></span> <span class="reference-text">Brian Knight, Allan Mitchell, Darren Green, Douglas Hinson, Kathi Kellenberger; 2005, <i>Professional SQL server 2005 integration services</i>, 1st ed., John Wiley and Sons, Chapter 5, pg. 129, <i>Handling Dirty Data</i>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-7645-8435-9</bdi>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-7645-8435-0</bdi></span>
</li>
<li id="cite_note-CC-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-CC_7-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSezen,_Tonguc_IbrahimIsikoglu,_Digdem2007" class="citation web cs1">Sezen, Tonguc Ibrahim; Isikoglu, Digdem (April 27, 2007). <a rel="nofollow" class="external text" href="http://web.mit.edu/comm-forum/mit5/papers/sezen_isikoglu.pdf">"From Ozans to God-Modes: Cheating in Interactive Entertainment From Different Cultures"</a> <span class="cs1-format">(PDF)</span>. p.&nbsp;8<span class="reference-accessdate">. Retrieved <span class="nowrap">January 24,</span> 2009</span>.</cite></span>
</li>
<li id="cite_note-noplate-snopes-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-noplate-snopes_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-noplate-snopes_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.snopes.com/autos/law/noplate.asp">"What Happens when Your License Plate Says 'NO PLATE'?"</a>. October 30, 1999.</cite></span>
</li>
<li id="cite_note-eh-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-eh_9-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFGlave1999" class="citation journal cs1">Glave, James (August 30, 1999). <a rel="nofollow" class="external text" href="https://www.wired.com/1999/08/hotmail-hackers-we-did-it/">"Hotmail Hackers: 'We Did It'"</a>. <i><a href="Wired_(website)" class="mw-redirect" title="Wired (website)">Wired</a></i>. Condé Nast<span class="reference-accessdate">. Retrieved <span class="nowrap">July 16,</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFBaraniuk2016" class="citation web cs1">Baraniuk, Chris (March 25, 2016). <a rel="nofollow" class="external text" href="https://www.bbc.com/future/article/20160325-the-names-that-break-computer-systems">"These unlucky people have names that break computers"</a>. <i><a href="BBC.com" class="mw-redirect" title="BBC.com">BBC.com</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">January 30,</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite id="CITEREFNull2015" class="citation magazine cs1">Null, Christopher (November 5, 2015). <a rel="nofollow" class="external text" href="https://www.wired.com/2015/11/null/">"Hello, I'm Mr. Null. My Name Makes Me Invisible to Computers"</a>. <i><a href="Wired_(magazine)" title="Wired (magazine)">Wired</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">January 30,</span> 2022</span>.</cite></span>
</li>
</ol></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-29" href="https://en.wikipedia.org/wiki/?title=Magic_string&amp;oldid=1303215020">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>